package com.edu.utils;

import com.alibaba.fastjson.JSON;
import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.request.AlipayTradePagePayRequest;
import com.edu.entity.AlipayBean;
import com.edu.entity.AlipayConfig;

/**
 * @author ZCN
 * @version 1.0
 * @date 2021/11/24 16:34
 */
public class AliPayUtil {
    public static String connect(AlipayBean alipayBean) throws AlipayApiException {
        //1、获得初始化的AlipayClient
        AlipayClient alipayClient = new DefaultAlipayClient(
                //支付宝网关
                AlipayConfig.gatewayUrl,
                //appid
                AlipayConfig.app_id,
                //商户私钥
                AlipayConfig.merchant_private_key,
                "json",
                //字符编码格式
                AlipayConfig.charset,
                //支付宝公钥
                AlipayConfig.alipay_public_key,
                //签名方式
                AlipayConfig.sign_type
        );
        //2、设置请求参数
        AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();
        //页面跳转同步通知页面路径
        alipayRequest.setReturnUrl(AlipayConfig.return_url);
        // 服务器异步通知页面路径
        alipayRequest.setNotifyUrl(AlipayConfig.notify_url);
        //封装参数
        alipayRequest.setBizContent(JSON.toJSONString(alipayBean));
        //3、请求支付宝进行付款，并获取支付结果
        String result = alipayClient.pageExecute(alipayRequest).getBody();
        //返回付款信息
        return  result;
    }
}
